home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ddj0897.zip / DYN401.ZIP / kernel / behavior.c < prev    next >
C/C++ Source or Header  |  1997-04-16  |  5KB  |  219 lines

  1.  
  2.  
  3. /*  Copyright (c) 1993-1996 Algorithms Corporation  */
  4. /*  All rights reserved.  */
  5.  
  6.  
  7.  
  8.  
  9. /*  This file automatically generated by dpp - do not edit  */
  10.  
  11. #define    DPP_STRATEGY    2
  12. #define    DPP_FASTWIDE    0
  13.  
  14.  
  15.  
  16. #line 13 "behavior.d"
  17. #include "kernels.h" 
  18.  
  19. #define    CLASS    Behavior_c
  20. #define    ivType    Behavior_iv_t
  21.  
  22. #include "generics.h"
  23.  
  24. object    Behavior_c;
  25.  
  26. #include "behavior.iv"
  27.  
  28.  
  29.  
  30. #line 64 "behavior.d"
  31. imeth char * Behavior_im_gName(object self)
  32. { Behavior_iv_t *iv = GetIVs(Behavior, self);
  33.     return iv->name; 
  34.  
  35. imeth objrtn Behavior_im_gDontCollect(object self)
  36. { Behavior_iv_t *iv = GetIVs(Behavior, self);
  37.     iv->ncg = 1; 
  38.     return self; 
  39.  
  40. imeth int Behavior_im_gTrace(object self, int mode)
  41. { Behavior_iv_t *iv = GetIVs(Behavior, self);
  42.     int pmode = iv->trace; 
  43.     iv->trace = mode; 
  44.     return pmode; 
  45.  
  46. imeth objrtn Behavior_im_gMarkingMethod(object self, ofun mf)
  47. { Behavior_iv_t *iv = GetIVs(Behavior, self);
  48.     iv->markfun = mf; 
  49.     return self; 
  50.  
  51. imeth void Behavior_im_gDoesNotImplement(object self, object gen)
  52. { Behavior_iv_t *iv = GetIVs(Behavior, self);
  53.     char buf[100]; 
  54.  
  55.     ChkArgTyp(gen, 2, GenericFunction); 
  56.     if (IsaClass(self)) 
  57.         sprintf(buf, "\nInstance of class %s doesn't respond to generic %s\n", 
  58.         iv->name, gName(gen)); 
  59.     else 
  60.         sprintf(buf, "\nClass %s doesn't respond to generic %s\n", 
  61.         iv->name, gName(gen)); 
  62.     gError(Dynace, buf); 
  63.  
  64. imeth int Behavior_im_gIsKindOf(object self, object cls2)
  65. { Behavior_iv_t *iv = GetIVs(Behavior, self);
  66.     int i; 
  67.  
  68.  
  69.  
  70.     if (self == cls2) 
  71.         return 1; 
  72.  
  73.  
  74.  
  75.     for (i=0 ; i < iv->n_direct_superclasses ; ++i) 
  76.         if (gIsKindOf(iv->direct_superclasses[i], cls2)) 
  77.         return 1; 
  78.     return 0; 
  79.  
  80. #ifndef NOCLASSLIB 
  81.  
  82. imeth objrtn Behavior_im_gStringRep(object self)
  83. { Behavior_iv_t *iv = GetIVs(Behavior, self);
  84.     object s, t; 
  85.  
  86.     t = gStringRepValue(self); 
  87.     s = vBuild(String, "Class  ", iv->name, "  [ ", t, " ]\n", NULL); 
  88.     gDispose(t); 
  89.     return s; 
  90.  
  91. imeth objrtn Behavior_im_gStringRepValue(object self)
  92.     return vSprintf(String, "<%8.8lx>", self); 
  93.  
  94. imeth objrtn Behavior_im_gSuperClasses(object self)
  95. { Behavior_iv_t *iv = GetIVs(Behavior, self);
  96.     int i; 
  97.     object lst; 
  98.  
  99.     lst = gNew(LinkObject); 
  100.  
  101.     for (i=0 ; i < iv->n_direct_superclasses ; ++i) 
  102.         gAddFirst(lst, iv->direct_superclasses[i]); 
  103.     return lst; 
  104.  
  105. imeth objrtn Behavior_im_gSubClasses(object self)
  106. { Behavior_iv_t *iv = GetIVs(Behavior, self);
  107.     object_list *sc; 
  108.     object lst; 
  109.  
  110.     lst = gNew(LinkObject); 
  111.  
  112.     for (sc=iv->direct_subclasses ; sc ; sc=sc->next) 
  113.         gAddFirst(lst, sc->obj); 
  114.     return lst; 
  115.  
  116. #endif 
  117.  
  118. imeth objrtn Behavior_im_gCopy(object self)
  119.     return gShouldNotImplement(self, "gCopy/gDeepCopy"); 
  120.  
  121. objrtn Behavior_initialize(void) 
  122.     static int done = 0; 
  123.  
  124.  
  125.  
  126.  
  127.     if (done) 
  128.         return Behavior_c; 
  129.  
  130.     done = 1; 
  131.  
  132.  
  133.  
  134.     iMethodFor(Behavior, gName, Behavior_im_gName); 
  135.     iMethodFor(Behavior, gDontCollect, Behavior_im_gDontCollect); 
  136.     iMethodFor(Behavior, gTrace, Behavior_im_gTrace); 
  137.     iMethodFor(Behavior, gMarkingMethod, Behavior_im_gMarkingMethod); 
  138.     iMethodFor(Behavior, gDoesNotImplement, Behavior_im_gDoesNotImplement); 
  139.     iMethodFor(Behavior, gIsKindOf, Behavior_im_gIsKindOf); 
  140.     iMethodFor(Behavior, gCopy, Behavior_im_gCopy); 
  141.     iMethodFor(Behavior, gDeepCopy, Behavior_im_gCopy); 
  142.  
  143. #ifndef NOCLASSLIB 
  144.     iMethodFor(Behavior, gStringRep, Behavior_im_gStringRep); 
  145.     iMethodFor(Behavior, gStringRepValue, Behavior_im_gStringRepValue); 
  146.     iMethodFor(Behavior, gSuperClasses, Behavior_im_gSuperClasses); 
  147.     iMethodFor(Behavior, gSubClasses, Behavior_im_gSubClasses); 
  148. #endif 
  149.     return Behavior_c; 
  150.  
  151. #if 0 
  152.  
  153. imeth objrtn Behavior_im_gNew(object self)
  154.  
  155. #line 201 "behavior.d"
  156. {} 
  157.  
  158.  
  159. #line 202 "behavior.d"
  160. ivmeth objrtn Behavior_ivm_vNew(object self, va_list _rest_)
  161.  
  162. #line 202 "behavior.d"
  163. {} 
  164.  
  165. #line 181 "behavior.c"
  166.  
  167. static    objrtn    Behavior_ifm_vNew(object self, ...)
  168. {
  169.     va_list    _rest_;
  170.     va_start(_rest_, self);
  171.     return Behavior_ivm_vNew(self, _rest_);
  172. }
  173.  
  174.  
  175.  
  176. #line 203 "behavior.d"
  177. imeth objrtn Behavior_im_gStackAlloc(object self, void *p)
  178.  
  179. #line 203 "behavior.d"
  180. {} 
  181.  
  182.  
  183. #line 204 "behavior.d"
  184. imeth ofun Behavior_im_gFindMethod(object self, object generic, int lev)
  185.  
  186. #line 204 "behavior.d"
  187. {} 
  188.  
  189.  
  190. #line 205 "behavior.d"
  191. imeth objrtn Behavior_im_gFindMethodObject(object self, object generic, int lev)
  192.  
  193. #line 205 "behavior.d"
  194. {} 
  195.  
  196.  
  197. #line 206 "behavior.d"
  198. imeth int Behavior_im_gInstanceSize(object self)
  199.  
  200. #line 206 "behavior.d"
  201. {} 
  202.  
  203. #endif 
  204.